package com.spring.dao;

import com.spring.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 *
 * @author 黄嘉强
 */
@Mapper
public interface UserDao {

    /**
     * 向user表写数据
     * @param user 用户信息对象
     * @return int 插入的行数
     */
    int insert(User user);

    /**
     * 基于创建时间（注册时间）查询用户信息。
     *
     * @param createdTime 用户可能的创建时间
     * @return 该时间注册的用户信息集合。
     */
    List<User> list(String createdTime);

    /**
     * 修改用户状态
     * @param ids 用户id
     * @param status 用户状态
     * @return 修改了多少条记录
     */
    int validById(@Param("ids") Integer[] ids, @Param("status") Integer status);

    /**
     * 更新tb_user表中的数据
     * @param user 用户信息
     * @return 更改的行数
     */
    int update(User user);

    /**
     * 基于用户名查询用户的基本信息
     * @param username 用户名
     * @return 用户信息对象
     */
    @Select("select id, username, password, nickname, mobile, status " +
            "from tb_users where username=#{username}")
    User selectByUsername(String username);
}
